package com.sojson.project.controller.param.verify;

import java.sql.SQLException;

import com.sojson.enums.core.EUserCouponStatus;
import com.sojson.project.entity.po.Activity;
import com.sojson.project.entity.po.CouponGoods;
import com.sojson.project.entity.po.UserCoupon;
import com.sojson.result.Result;
import com.sojson.util.StringUtil;

/**
 * 活动表参数验证
 * 
 * @author liu
 * @date 2021-03-16
 */
public class UserCouponParamVerify {

    /**
     * 通过id修改状态
     * 
     * @param activity
     * @return
     * @throws SQLException
     */
    public static Result<?> updateStatus(Activity activity) {
        if (StringUtil.isBlank(activity.getId())) {
            return Result.fail("ID不能为空！");
        }
        if (StringUtil.isBlank(activity.getStatus())) {
            return Result.fail("状态不能为空！");
        }

        return Result.success();
    }

    /**
     * 活动助力
     * 
     * @param helpCode
     * @return
     * @throws Exception 
     */
    public static Result<?> help(String helpCode) {
        if (StringUtil.isBlank(helpCode)) {
            return Result.fail("助力代码不能为空！");
        }

        return Result.success();
    }

    /**
     * 领取优惠券
     * 
     * @param couponId
     * @return
     */
    public static Result<?> addCoupon(String couponId) {
        if (StringUtil.isBlank(couponId)) {
            return Result.fail("优惠券ID不能为空！");
        }

        return Result.success();
    }

    /**
     * 活动领取优惠券
     * 
     * @param activityId
     * @return
     */
    public static Result<?> addCouponByActivity(String activityId) {
        if (StringUtil.isBlank(activityId)) {
            return Result.fail("活动ID不能为空！");
        }

        return Result.success();
    }

    /**
     * 修改优惠券状态
     * 
     * @param userCoupon
     * @return
     * @throws SQLException
     */
    public static Result<?> updateStatus(UserCoupon userCoupon) {
        if (StringUtil.isBlank(userCoupon.getId())) {
            return Result.fail("ID不能为空！");
        }
        if (StringUtil.isBlank(userCoupon.getStatus())) {
            return Result.fail("状态不能为空！");
        }
        if (userCoupon.getStatus() == EUserCouponStatus.GET_NO.getCode()) {
            return Result.fail("状态不能为未兑换！");
        }

        return Result.success();
    }

    /**
     * 判断优惠券是否可以在此商品上使用
     * 
     * @param couponGoods
     * @return
     */
    public static Result<?> isUse(CouponGoods couponGoods) {
        if (StringUtil.isBlank(couponGoods.getCouponNo())) {
            return Result.fail("优惠券编号不能为空！");
        }
        if (StringUtil.isBlank(couponGoods.getGoodsNo())) {
            return Result.fail("商品编号不能为空！");
        }

        return Result.success();
    }

}